OmniThreadLibrary 3.03 has just been released. It is available via
SVN (http://omnithreadlibrary.googlecode.com/svn/tags/release-3.03)
or as a ZIP archive
(http://omnithreadlibrary.googlecode.com/files/OmniThreadLibrary-3.03.zip).

What is OmniThreadLibrary?
==========================

OmniThreadLibrary is simple to use threading library for Delphi. It's
main "selling" points (besides the price, of course are power,
simplicity, and openess. With just few lines of code, you can set up
multiple threads, send messages between them, process Windows messages
and more. OmniThreadLibrary doesn't limit you in any way - if it is not
powerfull enough for you, you can ignore any part of its "smartness"
and replace it with your own code. If you don't like working with
threads - no problem! You can use high-level primitives like parallel
for, futures and pipelines to introduce parallelism into your
application.

OmniThreadLibrary is an open source project. It lives in the Google
Code and is licensed under the BSD license.

At the moment, OmniThreadLibrary supports Delphi 2007, 2009, 2010, XE,
XE2, XE3, XE4, and XE5 on the Win32 and Win64 platforms. Currently, 
there are no plans to support older Delphi compilers and .NET. XE2+ 
support is limited to Windows targets. Firemonkey is currently not 
supported.

Where can I get more information?
=================================

Home page: http://www.omnithreadlibrary.com/
Web discussion forum: http://otl.17slon.com/forum/
Downloads: http://code.google.com/p/omnithreadlibrary/downloads/list
Issue tracker: http://code.google.com/p/omnithreadlibrary/issues/list
SVN checkout instructions:
http://code.google.com/p/omnithreadlibrary/source/checkout
Author's blog: http://thedelphigeek.com
Author's home page: http://www.glagolite.si/delphi/
Documentation wiki: http://otl.17slon.com/book/
Documentation book: http://http://leanpub.com/omnithreadlibrary

Changes since version 3.02
==========================

- New features:
  - Support for XE4 and XE5 (tnx to [Uwe Raabe]).
  - TOmniMREW is automatically initialized to 0 when created.
  - Implemented IOmniPipeline.PipelineStage[] property returning
    Input/Ouput collections of a specific stage.
  - Added IOmniTaskControl.Stop - signals thread to stop and 
    immediately returns.
  - Added OtlSuperObject (tnx to [Lee_Nover]).
  - Different thread pool can be specified for all OtlParallel 
    operations via the new TaskConfig.ThreadPool function.
  - Added IOmniLockManager<K> to the OtlSync unit.
    http://www.thedelphigeek.com/2013/04/threadsafe-lock-manager-1-design.html
    http://www.thedelphigeek.com/2013/04/threadsafe-lock-manager-2-code.html
    http://www.thedelphigeek.com/2013/04/threadsafe-lock-manager-3-test.html

- Bug fixes:
  - Fixed XE2/XE3 package compilation
  - TOmniBaseBounded(Queue|Stack) internally aligns allocated memory 
    to required CAS granularity (8 bytes on 32-bit platforms, 
    16 bytes on 64-bit platforms) (tnx to [Alexander Alexeev]).
  - TOmniBaseBoundedQueue's ring buffers are internally aligned to
    2*SizeOf(pointer) (tnx to [Alex Egorov]).
  - Prevent memory leak if (Queue|Stack).Initialize is called more 
    than once (tnx to [h.hasenack]).
  - Fixed memory leaks in `forEach output` and `checkVat` examples
    (tnx to [Steve Maughan]).
  - Fixed TOmniTaskGroup.TerminateAll.
  - Simple pipeline stage handles exceptions in the executor function.
  - Compiles when 'Typed @ operator' is enabled (tnx to [arioch]).
  - Removed optimization which caused ForEach to behave differently on
    uniprocessor computers.

- New demos:
  - 54_LockManager: Demonstrates the new lock manager
    (IOmniLockManager<K>).

--
Primoz
[http://thedelphigeek.com]